// File: jmcomic-core/src/main/java/dev/jukomu/jmcomic/client/JmResp.java
package dev.jukomu.jmcomic.client;

import dev.jukomu.common.util.net.CommonResponse;
import dev.jukomu.jmcomic.exception.ExceptionUtils;
import okhttp3.Response;

/**
 * 对应Python的JmResp，是所有禁漫响应类的基类。
 * 继承自CommonResponse，并添加禁漫特定的成功判断和错误处理。
 */
public class JmResp extends CommonResponse {

    /**
     * 构造函数。
     *
     * @param rawResponse 原始OkHttp响应对象。
     */
    public JmResp(Response rawResponse) {
        super(rawResponse);
    }

    /**
     * 判断响应是否成功。
     * 对于禁漫，除了HTTP状态码为200，还需要响应内容非空。
     *
     * @return 如果成功返回 true。
     */
    @Override
    public boolean isSuccess() {
        return super.isSuccess() && getContent().length > 0;
    }

    /**
     * 如果请求不成功，则抛出异常。
     *
     * @throws AssertionError 如果请求不成功。
     */
    @Override
    public void requireSuccess() throws AssertionError {
        if (isNotSuccess()) {
            ExceptionUtils.raisesResp(getErrorMessage(), this);
        }
    }

    /**
     * 获取错误消息。
     * 子类应覆盖此方法以提供更具体的错误信息。
     *
     * @return 错误消息字符串。
     */
    public String getErrorMessage() {
        return getText();
    }
}